package com.gopay.common.cps.service.fund;

import com.gopay.common.domain.fund.FundGopayCardEntity;

import java.util.List;

/**
 * 卡信息服务类
 * @BindCardService.java
 * @author baiyunpeng
 * @2016年7月4日 上午10:33:04  www.gopay.com.cn Inc.All rights reserved.
 */
public interface BindCardService {

    /**
     * 保存卡
     * @param fundGopayCardEntity
     * @return
     */
    FundGopayCardEntity save(FundGopayCardEntity fundGopayCardEntity);
    /**
     * 删卡
     * @param fundGopayCardEntity
     */
    void delete(FundGopayCardEntity fundGopayCardEntity);

    /**
     * 获取卡，此方法没有被使用，如果有需要，应该针对多卡改造
     * @param agentId
     * @return
     */
    @Deprecated
    FundGopayCardEntity getCard(String agentId);
    /**
     * 离线查询卡
     * @param bankNo
     * @return
     */
    FundGopayCardEntity findByCriteria(String bankNo);
    /**
     * 获取卡集合
     * @param agentNo
     * @param merOrderId
     * @return
     */
    @Deprecated
    List<FundGopayCardEntity> getCardByAgentOrMerOrderId(String agentNo, String merOrderId);
    /**
     * 获取生效的卡信息，已被getValidCardByAgentAndCardNo()替代
     * @param agentId
     * @return
     * @author dong-wang5@hnari.com
     * @2016年7月4日 上午10:32:47
     */
    @Deprecated
    FundGopayCardEntity getValidCard(String agentId);

    /**
     * 已被getValidCardByAgentAndMerIdAndCardNo()替代
     * @param agentId
     * @param merId
     * @return
     */
    @Deprecated
    FundGopayCardEntity getValidCard(String agentId,String merId);

    /**
     * 根据协议号和卡号获取生效的卡信息
     * @param agentId
     * @return
     * @author liuyu
     * @2018年1月2日 上午10:32:47
     */
    FundGopayCardEntity getValidCardByAgentAndCardNo(String agentId, String cardNo);

    /**
     * 根据协议号、商户号和卡号获取生效卡的信息
     * @param agentId
     * @param merId
     * @param cardNo
     * @return
     */
    FundGopayCardEntity getValidCardByAgentAndMerIdAndCardNo(String agentId,String merId,String cardNo);

}
